#ifndef __DUNE_INITIAL_MHD_HH__
#define __DUNE_INITIAL_MHD_HH__
#include<dune/initial/initial-base.hh>
#include <dune/common/parametertreeparser.hh>
namespace Dune {
  namespace Initial {
    class MHD : public InitialBase{
    public:
      MHD(Dune::ParameterTree& ptree);
      virtual ~MHD();
      void initial_condition(double* location, double* holder);
      void set_initcond_paras(Dune::ParameterTree& ptree);
    private:
      void sod_shocktube_leve(double* location, double* holder);
      void sod_shocktube_stone(double* location, double* holder);  
      void twoshock_leve(double* location, double* holder);
      void briowu(double* location, double* holder);
      void rj2a(double* location, double* holder);
      void rj4d(double* location, double* holder);
      void blastwave(double* location, double* holder);
    };
  } // Initial
} // Dune
#endif  // __DUNE_INITIAL_MHD_HH__
